package cn.px.service.upms;


import cn.px.dao.dto.upms.SysDeptDTO;
import cn.px.dao.entity.upms.SysDept;
import cn.px.dao.vo.im.base.ImportResultVO;
import cn.px.dao.vo.im.upms.ImportSysDeptVO;
import cn.px.dao.vo.query.upms.SysDeptVO;
import cn.px.service.base.IBaseService;

import java.util.List;

/**
 * @Description 部门表 service
 * @author 品讯科技
 * @date 2024-08
 * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
 */
public interface SysDeptService extends IBaseService<SysDept, SysDeptDTO> {

    /**
     * 根据主键查询数据
     *
     * @param id ：
     * @return ：
     */
    SysDeptVO selectById(String id);

    /**
     * 保存设备库
     *
     * @param model ：
     * @return ：
     */
    SysDept saveDeptAndRelation(SysDeptDTO model);

    /**
     * 查询所有上级
     *
     * @param model ：
     * @return ：
     */
    List<SysDeptVO> allParentList(SysDeptDTO model);

    /**
     * 查询所有下级
     *
     * @param model ：
     * @return ：
     */
    List<SysDeptVO> allChildList(SysDeptDTO model);


    /**
     * 根据调拨类型获取登录人的调拨部门
     *
     * @param allocateType :
     * @param model        ：
     * @return ：
     */
    List<SysDeptVO> selectByAllocateType(Integer allocateType, SysDeptDTO model);

    /**
     * 根据id查詢
     *
     * @param deptIds :
     * @return ：
     */
    List<SysDept> selectByIds( List<String> deptIds);


    /**
     * 导入
     *
     * @param deptList ：
     * @param id       :
     * @return :
     */
    ImportResultVO importDept(String id, List<ImportSysDeptVO> deptList);


    // SysDeptVO selectByNameParentName();
}
